From: Eli Zaretskii Date: Mon, 29 Dec 2003 13:51:54 +0000 (+0000) Subject: (internal_equal): Return t for two NaN arguments. X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~24683 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=dda5006d4454c128bac108d0556ef17af4bc175a;p=emacs.git (internal_equal): Return t for two NaN arguments. --- diff --git a/src/fns.c b/src/fns.c index e4252c98ca5..ff40c706edd 100644 --- a/src/fns.c +++ b/src/fns.c @@ -2169,7 +2169,15 @@ internal_equal (o1, o2, depth) switch (XTYPE (o1)) { case Lisp_Float: - return (extract_float (o1) == extract_float (o2)); + { + double d1, d2; + + d1 = extract_float (o1); + d2 = extract_float (o2); + /* If d is a NaN, then d != d. Two NaNs should be `equal' even + though they are not =. */ + return d1 == d2 || (d1 != d1 && d2 != d2); + } case Lisp_Cons: if (!internal_equal (XCAR (o1), XCAR (o2), depth + 1))